package fiuba.service.impl;

import java.util.List;


import fiuba.model.ListaNoticias;
import fiuba.model.Noticia;
import fiuba.model.Seccion;
import fiuba.service.NoticiaManager;
import fiuba.service.SeccionDataManager;

public class SeccionDataManagerImpl extends UniversalManagerImpl implements
		SeccionDataManager {
	NoticiaManager noticiaManager;
	
public SeccionDataManagerImpl (NoticiaManager noticiaManager){
	this.noticiaManager = noticiaManager;
}
	
	public String getHtmlNoticias(Seccion seccion) {
		int columna = 1;		
		ListaNoticias listaNoticia = seccion.getListaNoticias();
		List<Noticia> noticias ;		
		if (!seccion.isMostrarContenidoPropio()){
		  noticias = noticiaManager.findConLimit(1, listaNoticia.getNoticiasAMostrar());		  
		}else {
		  noticias = noticiaManager.findConLimitYSeccion(1, listaNoticia.getNoticiasAMostrar(), seccion.getId().toString());
		}
		
		StringBuilder html = new StringBuilder();
		html.append("<table>");
		
		int width = 100/((noticias.size()< listaNoticia.getColumnas()) && ! noticias.isEmpty()? noticias.size(): listaNoticia.getColumnas() );
		
		for (Noticia noticia : noticias){
			if (columna == 1){
				html.append("<tr>");
			}
	 		html.append("<td style='width:" + width + "%;'valign=\"top\">")
			//append("<div class='resultadoBusqueda'>")
			// Titulo
	 		
			.append("<a href='verNoticia.html?id=" + noticia.getId().toString() + "' ");
	 		html.append("style='font-weight:bolder;font-family:Geneva,Arial,Helvetica,sans-serif;background-color:inherit;");
			if (!listaNoticia.getColorUno().equals("")) { //titulo de la noticia
				html.append("color:" + listaNoticia.getColorUno() + ";"); 
			}
			html.append("font-size:" + listaNoticia.getSizeUno() + "px; " );
			html.append(listaNoticia.getExtraStyleTitulo());
			html.append(" '>" + noticia.getTitulo() + "</a>");
			html.append("<br>");
			
			// Miniresumen
			html.append("<font style='align:" + listaNoticia.getAlineacion() + ";");
			if (!listaNoticia.getColorDos().equals("")) { //texto noticia
				html.append(" color:" + listaNoticia.getColorDos() + ";"); 
			}
			html.append(listaNoticia.getExtraStyleTexto());
			html.append( "font-size:" + listaNoticia.getSizeDos() + "px;" + "'>");
			 // Quito el HTML
			//int largo = 100;
			//String contenido = noticia.getResumen(); //.replaceAll("\\<.*?>","");
			// Si quedo mayor al largo permitido, quito hasta la ultima palabra y agrego "..."
	/*		if (contenido.length() > largo) {
				int lastpos = largo;
				if (!contenido.substring(largo,largo + 1).equals(" ") ) {
					lastpos = contenido.lastIndexOf(" ",largo);
				}
				try {
					contenido = contenido.substring(0,lastpos) + "...";
				}
				catch (Exception e) {
					log.debug("ERROR Al trimear el resumen de la noticia en la lista");
				}
			}
		*/	
			html.append(noticia.getResumen());
			if (!listaNoticia.getColorDos().equals("")) {
				html.append("</font>"); 
			}
			if (listaNoticia.isSeparador()){
			    html.append("<hr/>");
			}
			html.append("</td>");
			
			if (columna == listaNoticia.getColumnas()){
				columna = 1;
				html.append("</tr>");
			}
			else {
				columna ++;
			}
		}
		html.append("</table>");
		
		return html.toString();
	}

	
}
